package sort.basic_sort;

import java.util.Arrays;

/**
 * @author dx
 * @version 1.0
 * @date 2022/4/15 17:48
 * @description: 希尔排序的实质就是分组插入排序，该方法又称为缩小增量排序。
 *
 */



public class shell_sort {


    //好理解的版本：
    public static void shellSort(int[] arr){
        int gap = arr.length/2;
        for(;gap>0;gap/=2){    //不断缩小gap，直到1为止
            for(int j=0;(j+gap)<arr.length;j++){   //使用当前gap进行 每个组 组内插入排序
                for(int k=0;(k+gap)<arr.length;k+=gap){ //某个组
                    if(arr[k]>arr[k+gap]){
                        int temp = arr[k+gap];
                        arr[k+gap] = arr[k];
                        arr[k] = temp;
                        System.out.println("  sorting: "+ Arrays.toString(arr));
                    }
                }
            }
        }
    }
}
